##### code excerpt from bitcoinSwitch ##### ### v0.1 - classic = Classic bitcoinSwitch. On for time x (time example = 5000ms) .. while(paid == false){ webSocket.loop(); if(paid){ pinMode(getValue(payloadStr, '-', 0).toInt(), OUTPUT); digitalWrite(getValue(payloadStr, '-', 0).toInt(), HIGH); delay(getValue(payloadStr, '-', 1).toInt()); digitalWrite(getValue(payloadStr, '-', 0).toInt(), LOW); } } Serial.println("Paid"); paid = false; .. ### v0.2 - flash = Recurrent lightning with undercutting. Time x equal to flash period half (time x example = 4000ms) .. while(paid == false){ webSocket.loop(); if(paid){ pinMode(getValue(payloadStr, '-', 0).toInt(), OUTPUT); int i = 0; Serial.println("while1"); while (i<2) { digitalWrite(getValue(payloadStr, '-', 0).toInt(), HIGH); delay(getValue(payloadStr, '-', 1).toInt()); digitalWrite(getValue(payloadStr, '-', 0).toInt(), LOW); delay(getValue(payloadStr, '-', 1).toInt()); i++; } delay(800); i = 0; Serial.println("while2"); while (i<4) { digitalWrite(getValue(payloadStr, '-', 0).toInt(), HIGH); delay(getValue(payloadStr, '-', 1).toInt()); digitalWrite(getValue(payloadStr, '-', 0).toInt(), LOW); delay(getValue(payloadStr, '-', 1).toInt()); i++; } delay(800); i = 0; Serial.println("while3"); while (i<2) { digitalWrite(getValue(payloadStr, '-', 0).toInt(), HIGH); delay(getValue(payloadStr, '-', 1).toInt()); digitalWrite(getValue(payloadStr, '-', 0).toInt(), LOW); delay(getValue(payloadStr, '-', 1).toInt()); i++; } Serial.println("long"); digitalWrite(getValue(payloadStr, '-', 0).toInt(), HIGH); delay(getValue(payloadStr, '-', 1).toInt()); delay(getValue(payloadStr, '-', 1).toInt()); digitalWrite(getValue(payloadStr, '-', 0).toInt(), LOW); delay(getValue(payloadStr, '-', 1).toInt()); } } Serial.println("Paid"); paid = false; .. ### v0.3 - strobo = 50ms on/off => 100ms/periode => 10Hz for time x (time x example = 4000ms) .. while(paid == false){ webSocket.loop(); if(paid){ pinMode(getValue(payloadStr, '-', 0).toInt(), OUTPUT); int time = 0; Serial.println("time"); while (time < (getValue(payloadStr, '-', 1).toInt())) { digitalWrite(getValue(payloadStr, '-', 0).toInt(), HIGH); delay(50); digitalWrite(getValue(payloadStr, '-', 0).toInt(), LOW); delay(50); time = time + 100; } } } Serial.println("Paid"); paid = false; .. ### v0.4 - signal = On/off ratio 1 to 3 with length factor 10 (time x example = 80ms) .. while(paid == false){ webSocket.loop(); if(paid){ pinMode(getValue(payloadStr, '-', 0).toInt(), OUTPUT); int time = 0; Serial.println("time"); while (time < 10*(getValue(payloadStr, '-', 1).toInt())) { digitalWrite(getValue(payloadStr, '-', 0).toInt(), HIGH); delay(getValue(payloadStr, '-', 1).toInt()); digitalWrite(getValue(payloadStr, '-', 0).toInt(), LOW); delay(3*(getValue(payloadStr, '-', 1).toInt())); time = time + getValue(payloadStr, '-', 1).toInt(); } } } Serial.println("Paid"); paid = false; ..